package cn.e4j.modular.api.service;

import cn.e4j.core.dto.impl.Dto;
import cn.e4j.modular.api.mapper.Gwat210Mapper;
import cn.e4j.modular.api.util.CommonUtils;
import cn.e4j.modular.crm.entity.GwcoT;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

@Service
public class Gwat210Service{

    @Autowired
    Gwat210Mapper gwat210Mapper;

    /**
     * 获取当前用户的类型
     *
     * @param inDto
     * @return
     */
    public List<Dto> getGwaaData(Dto inDto) {
        return gwat210Mapper.getGwaa(inDto);
    }

    /**
     * 获取gwco表数据
     *
     * @param inDto
     * @return
     */
    public List<Dto> getGwco1(Page page,Dto inDto) {
        List<Dto> p = new ArrayList<>();
        p = gwat210Mapper.getGwcoPage(page,inDto);
        for (Dto o : p) {
            inDto.put("GWCODOCNO", o.getString("GWCODOCNO"));
            o.put("details", gwat210Mapper.getGwaoYList(inDto));
        }
        return p;
    }

    /**
     * 获取gwco表数据
     *
     * @param inDto
     * @return
     */
    public List<Dto> getGwco2(Page page,Dto inDto) {
        List<Dto> p = new ArrayList<>();
        p = gwat210Mapper.getGwcoDataPage(page,inDto);
        for (Dto o : p) {
            inDto.put("GWCODOCNO", o.getString("GWCODOCNO"));
            o.put("details", gwat210Mapper.getGwaoYList(inDto));
        }
        return p;
    }

    /**
     * 判断是否可以取消确认
     *
     * @param inDto
     * @return
     */
    public List<Dto> getGwcq(Dto inDto) {
        return gwat210Mapper.getGwcq(inDto);
    }

    /**
     * 获取订单的状态
     *
     * @param inDto
     * @return
     */
    public List<Dto> getGwcoacti(Dto inDto) {
        inDto.put("GWCOSEQ", new BigDecimal(inDto.getString("GWCOSEQ")));
        return gwat210Mapper.getGwaoDetail(inDto);
    }

    /**
     * 修改gwco_t的状态
     *
     * @param inDto
     * @return
     */
    @Transactional
    public void update(Dto inDto) {
        GwcoT gwcoT = CommonUtils.toJavaClass(inDto, GwcoT.class);
        gwcoT.updateById();
    }

}
